//package com.dgm.kernel.helper;
//
//import cn.hutool.core.util.ObjectUtil;
//import cn.hutool.json.JSONUtil;
//import HeaderConstants;
//import UserEntity;
//import org.springframework.data.redis.core.BoundHashOperations;
//import org.springframework.data.redis.core.RedisTemplate;
//
//import javax.servlet.http.HttpServletRequest;
//
///**
// * @author haoqizhe.li
// * @date 2018/4/10 13:50
// */
//public class LoginHelper {
//
//    public static UserEntity getLoginUserFromRequest(HttpServletRequest request,RedisTemplate redisTemplate){
//        Object sessionValue = request.getSession().getAttribute(HeaderConstants.USER_SESSION_KEY);
//        if(ObjectUtil.isNotNull(sessionValue)){
//            if(sessionValue instanceof UserEntity){
//                return (UserEntity) sessionValue;
//            }else if(sessionValue instanceof String){
//                return getUser(sessionValue.toString(),redisTemplate);
//            }
//        }else {
//            Object useStr = redisTemplate.opsForValue().get(HeaderConstants.USER_REDIS_KEY);
//            if(ObjectUtil.isNotNull(useStr)){
//                if(useStr instanceof UserEntity){
//                    return (UserEntity) useStr;
//                }else if(useStr instanceof String){
//                    return JSONUtil.toBean(useStr.toString(),UserEntity.class);
//                }
//            }
//        }
//        return null;
//    }
//    /**
//     *
//     * @param session
//     * @return
//     */
//    private static UserEntity getUser(String session,RedisTemplate redisTemplate) {
//        if (redisTemplate == null || !redisTemplate.hasKey(session)) {
//            return null;
//        }
//        BoundHashOperations<String, String, String> bho = redisTemplate.boundHashOps(session);
//        String data = bho.get(HeaderConstants.USER_REDIS_KEY);
//        if (data == null || data.isEmpty()) {
//            return null;
//        }
//        return JSONUtil.toBean(data,UserEntity.class);
//    }
//}
